技術文章
技術問答
My Project
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
25
0
Software Development
RISC-V 與處理器之架構學習及應用
系列 第
25
篇
[Day25] Translating and Running a Program: CALL (1/5)
16th鐵人賽
凱特
2024-10-09 02:05:06
877 瀏覽
分享至
程式編譯過程
:
將高階語言(例如 C 程式)轉換為機器語言的過程分為幾個步驟:
高階語言(C 程式)
:經由編譯器轉換成組合語言。
組合語言
:經由組譯器轉換成機器語言。
機器語言
:由硬體架構來執行。
這個過程的每個步驟都有其對應的描述,從硬體架構到邏輯電路描述。
C 程式的執行
:
Translator
:負責將程式從一種語言轉換成另一種語言,如將 C 程式轉換為組合語言,再轉換成機器語言。這通常會提高效率和性能。
Interpreter
:直接執行原始語言程式,與 Translator 不同,不需要進行語言轉換。
舉例來說,C 程式和 RISC-V 程式可以透過模擬器來解釋執行,這對學習和除錯很有幫助。
編譯 C 程式的步驟
:
將 C 程式轉換為可執行檔的具體步驟:
Compiler
:將
.c
檔案轉換成
.s
(組合語言)。
Assembler
:將
.s
檔案轉換成
.o
(機器語言模組)。
Linker
:將
.o
檔案與其他物件檔案連結,生成可執行檔。
Loader
:將可執行檔載入記憶體並開始執行。
留言
追蹤
檢舉
上一篇
[Day24] RISC-V 單周期 Datapath 與控制邏輯概述
下一篇
[Day26] CALL: Assembler (2/5)
系列文
RISC-V 與處理器之架構學習及應用
共
30
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
26
[Day26] CALL: Assembler (2/5)
27
[Day27] CALL: Linker (3/5)
28
[Day28] CALL: Loader (4/5)
29
[Day29] 總結與流程 (5/5)
30
[Day30] 從抽象層次到效能改善
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
929
組
團體組數
32
組
累計文章數
13360
篇
完賽人數
159
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
17th鐵人賽
14th鐵人賽
12th鐵人賽
18th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
熱門問題
六個語言的 README,要一比一翻完整,還是只寫到「裝得起來」就好?
「相容 MySQL 協議」的引擎,你們是怎麼做能力偵測的?我們試了 42 種,結論有點慘
本地跑模型做評測,你們是怎麼給 context 長度設上限的?我們沒設,7.1 GB 的模型吃掉了 51 GB
熱門回答
六個語言的 README,要一比一翻完整,還是只寫到「裝得起來」就好?
本地跑模型做評測,你們是怎麼給 context 長度設上限的?我們沒設,7.1 GB 的模型吃掉了 51 GB
熱門文章
用 Gemini 打造《智數 Sudoku Master》網頁數獨:能推理、能拍照解答的科技結晶,只有一處美中不足?
桌面、手機、網站都要接 OAuth2 登入,能用同一套嗎?
密碼學基礎複習:Hash、非對稱加密與數位簽章在區塊鏈的應用
講到 IT 監控,你一定聽過 SolarWinds--但你真的了解它在做些什麼嗎?
Want_To_Cry勒索病毒 處理歷程(預防下一次?)
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}